/**
 *@author qzg
 *@description 发送邮箱验证码的模块
 *@createDate 2022年06月23日 11:02:09
 */
import nodemailer from 'nodemailer'
import { mailFrom, mailKey } from '../config/constant'

let nodeMail = nodemailer.createTransport({
  host: 'smtp.qq.com',
  service: 'QQ', //类型qq邮箱
  port: 465, //上文获取的port
  secure: true, //上文获取的secure 465true other false
  auth: {
    user: mailFrom, // 发送方的邮箱，可以选择你自己的qq邮箱
    pass: mailKey // 上文获取的stmp授权码
  }
})
const sendMail = async (to: string) => {
  const code = String(Math.floor(Math.random() * 1000000)).padEnd(6, '0') //生成6位随机验证码
  //发送邮件
  const mail = {
    from: `"帅气男孩"<${mailFrom}>`, // 发件人
    subject: '验证码', //邮箱主题
    to, //收件人，这里由post请求传递过来
    // 邮件内容，用html格式编写
    html: `
        <p>您好！</p>
        <p>您的验证码是：<strong style="color:orangered;">${code}</strong></p>
        <p>如果不是您本人操作，请无视此邮件</p>
    `
  }
  //如果sendMail不传入callback参数，就是一个promise，如果传入了callback，就不是promise，需要根据callback参数中的err判断是否出错，不能用.catch()捕获错误
  await nodeMail.sendMail(mail)
  return code
}

export default sendMail
